The approaches described in this section are approaches that are known to the inventors and could be pursued. They are not necessarily approaches that have been pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section, or that those approaches are known to a person of ordinary skill in the art.
Many situations arise where the synchronization of data is desirable.
As one example, there is an increasing demand for computer implemented collaboration systems that permit multiple users in different locations to concurrently work on and edit the “same” dataset—for example a document. Such systems typically allow each user involved to, in real time, change the dataset themselves and see changes made to the dataset by other users.
In order to facilitate data synchronization changes made to a dataset need to be expressed—for example in an edit script.
A number of considerations are relevant to implementing systems that provide for data synchronization. One consideration is the need to implement a system or methodology that maintains consistency of the data despite different users performing different operations in respect at the same time. Performance considerations are also relevant, particularly in the case that the data synchronization is to be performed in real time such that the system or methodology needs to be able to operate so that changes made by users are made to all versions of the data with limited delay.